package com.atguigu.spring.demo04.controller;

import com.atguigu.spring.demo04.service.api.MoneyService;
import com.atguigu.spring.demo04.service.api.StuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;

@Controller("pigStuController")
public class StuController {

    // @Autowired 自动装配的流程
    // 1、根据成员变量的类型查找
    // 2、根据类型查找到 0 个，装配失败，流程结束
    // 3、根据类型查找到 1 个，装配成功，流程结束
    // 4、根据类型查找到多个
    //      [1]无 @Qualifier 注解：以成员变量的名称为 bean 的 id 查找
    //      [2]有 @Qualifier 注解：以 @Qualifier 注解指定的字符串为 bean 的 id 查找
    // 5、把 required 属性设置为 false 表示非必须装配，能装上就装，装不上就拉倒
    @Autowired
    @Qualifier("bigPigHeader")
    private StuService stuService; // StuServiceImpl StuServiceImpl02

    @Autowired(required = false)
    private MoneyService moneyService;

    public void showMessage() {
        stuService.showMessage();
    }

}
